package xx.iverson.listening_manager.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xx.iverson.listening_manager.entity.AudioFile;

import java.util.List;

/**
 * xx.iverson.listening_manager.mapper.AudioFileMapper
 * 描述：
 * on 2025/10/17-上午9:00
 *
 * @author weijx
 */

@Mapper
public interface AudioFileMapper {

    // 查询所有听力文件（带分类信息）
    List<AudioFile> selectAllAudioFiles();

    // 根据ID查询听力文件
    AudioFile selectAudioById(Integer audioId);

    // 根据分类ID查询听力文件
    List<AudioFile> selectAudioByLevel2CategoryId(Integer categoryId);

    // 根据分类ID查询听力文件
    List<AudioFile> selectAudioByLevel1CategoryId(Integer categoryId);

    // 插入听力文件
    int insertAudio(AudioFile audioFile);

    // 更新听力文件信息
    int updateAudio(AudioFile audioFile);

    // 删除听力文件
    int deleteAudio(Integer audioId);

    // 更新播放次数
    int updatePlayCount(Integer audioId);

    // 更新下载次数
    int updateDownloadCount(Integer audioId);

    // 检查文件是否存在
    int checkAudioExists(Integer audioId);

    // 获取文件存储路径
    String selectStoragePathById(Integer audioId);

    // 搜索
    List<AudioFile> searchByKeyword(@Param("keyword") String keyword);
}